Conventional communication systems allow a user of a device (endpoint), such as a personal computer or mobile device, to conduct voice or video calls with one or more other endpoints over a packet-based computer network such as the Internet. FIG. 1 shows an example of such a user device 102, as used by a user 104. User device 102 is shown executing a communication client 120 for use in conducting such calls. Frequently, communication of call data by endpoints is effected by the endpoints adhering to an agreed communication protocol. One example of this is the Session Initiation Protocol (SIP). In broad terms, SIP dictates that calls be negotiated in accordance with an endpoint-to-endpoint request-response-based transaction paradigm in which (among other things) the call is progressed from an initial unconnected state to a state in which real-time media can flow between endpoints by SIP user agents—such as SIP user agent 108 which forms part of the client software 106 executed at endpoint 102—transmitting a sequence of request messages to other user agents of other endpoints and receiving respective response messages in return, with maintenance and eventual termination of the call being similarly effected. Each user agent maintains a state machine (such as state machine 110) for the duration of the call which is used to track current call state. The state machines are suitably updated upon transmission of salient requests and receipt of salient responses.
A typical example of an SIP call flow between two users (Alice and Bob) is illustrated in FIG. 2. Initially, Alice's user agent transmits an INVITE request to Bob's user agent (S202), which initially returns a provisional RINGING response (S204) followed by an OK response (S206) indicating that Bob has accepted the call. Alice's user agent acknowledges this with an ACK message (S208) and real-time media flow commences (S210). At S212 Alice's user agent instigates call termination by transmitting a BYE request to Bob's user agent (S212). In response, Bob's user agent returns an OK response (S214) and the call is terminated. As shown, Alice and Bobs' user agents may exchange such messages via an SIP proxy 120. For instance, Alice and Bobs' user agents may initially register their respective addresses with the proxy 120 to make themselves ‘visible’ to one another. Typically, the proxy 120 is stateless in so far as it does not maintain any data about the current call state (and merely acts as a relay) or transaction-stateful in so far as it only maintained limited information about current transactions (i.e. single request-response exchanges) and only for the duration of those transactions.